/**
 * 时间格式化
 * @param {Date|String|Number} time 时间
 * @param {String} cFormat 格式化模板，如 '{y}-{m}-{d} {h}:{i}:{s}'
 * @returns {String} 格式化后的时间字符串
 */
export function parseTime(time, cFormat) {
    if (arguments.length === 0 || !time) {
      return ''
    }
    const format = cFormat || '{y}-{m}-{d} {h}:{i}:{s}'
    let date
    if (typeof time === 'object') {
      date = time
    } else {
      if (typeof time === 'string') {
        if (/^[0-9]+$/.test(time)) {
          // 支持时间戳（秒或毫秒）
          time = parseInt(time)
          time = time.toString().length === 10 ? time * 1000 : time
        }
        date = new Date(time)
      } else {
        date = new Date(time)
      }
    }
    const formatObj = {
      y: date.getFullYear(),
      m: date.getMonth() + 1,
      d: date.getDate(),
      h: date.getHours(),
      i: date.getMinutes(),
      s: date.getSeconds(),
      a: date.getDay()
    }
    const timeStr = format.replace(/{([ymdhisa])+}/g, (result, key) => {
      const value = formatObj[key]
      // 补零处理
      if (result.length > 0 && value < 10) {
        return '0' + value
      }
      return value || 0
    })
    return timeStr
  }